package com.briup.day02;

import java.math.BigDecimal;

public class Homework2 {
    public static void main(String[] args) {
        System.out.println("---------------商场库存清单---------------");
        // \t 是Java中的特殊符号，表示制表符（就是一个tab键给出的空格）
        // 除了\t外，常用的特殊符号还有 \n，表示换行
        // 在Java中单个\表示转义字符，使用如果要表示输出\字符，那么需要在其前面添加\，\\
        System.out.println("品牌型号\t\t尺寸\t\t价格\t\t库存数");
        // 单个\t能够控制制表符的大小变得弹性
        System.out.println("MacBookAir\t13.3\t8599.0\t5");
        System.out.println("ThinkPad\t14.0\t8499.0\t10");
        System.out.println("MateBook 14\t14.0\t7199.0\t18");
    }

    private static void test2() {
        int balance = 2;
        double price = 1.1;
        // 会出现精度丢失问题，结果为 0.89999999
        System.out.println(balance - price);
        // 出现金额计算时，应该如何对其进行计算
        // 先化小数为整数进行运算，任何在变回小数
        long balanceTemp = balance * 100000;
        long priceTemp = (long) (price * 100000);
        // 相同类型的值进行运算，结果只会是该类型的值，long计算后的结果只会是long
        // long没有小数，所以最终结果是0
        double v = (balanceTemp - priceTemp) / 100000.0;
        System.out.println(v);

        // 使用BigDecimal进行运算，在传入值时，使用字符串格式传入
        BigDecimal bigDecimal = new BigDecimal("2.0");
        BigDecimal bigDecimal2 = new BigDecimal("1.1");
        System.out.println(bigDecimal.subtract(bigDecimal2).doubleValue());
    }

    private static void test() {
        /*定义3个int类型变量，分别使用二进制、八进制、十六进制三种
         字面常量语法为其赋值，使其值均等于十进制值85。*/
        // 在Java中使用字面量进行赋值时，默认使用的就是10进制
        int a = 85;
        System.out.println(a);
        // 要表明是一个二进制数时，应该使用0b开头
        int b = 0b01010101;
        System.out.println(b);
        // 要表明是一个八进制数时，应该使用0开头，8进制的取值在0-7
        int c = 0125;
        System.out.println(c);
        // mysql 041231
        // 要表明是一个十六进制数是，应该使用0x开头，取值范围在0-9a-f之间，a-f表示10-15
        int d = 0x55;
        System.out.println(d);
    }
}
